package com.yuou.data.logscollection.server.constants;

import lombok.Getter;
import lombok.Setter;

import java.util.HashMap;
import java.util.Map;

/**
 * @author ldf
 * @since 2021/4/23
 */
public interface LogsCollectionEnums {

    /**
     * 埋点消息的主题枚举
     */
    @Getter
    enum MessageTopicsEnum {

        /**
         * 埋点流式消息主题
         */
        USER_ACTION_TRACK("dev-full-flow-burypoint", "用户埋点流式消息主题");

        String code;
        String name;

        MessageTopicsEnum(String code, String name) {
            this.code = code;
            this.name = name;
        }

        public static Map<String, String> enumToMap() {
            Map<String, String> resultMap = new HashMap<>(4);
            for (MessageTopicsEnum item : MessageTopicsEnum.values()) {
                resultMap.put(item.getCode(), item.getName());
            }
            return resultMap;
        }
    }

    /**
     * 埋点-事件-枚举
     */
    @Getter
    enum EventEnum {

        /**
         * 用户注册
         */
        USER_REGISTER("r6r", "用户注册"),

        /**
         * 启动APP
         */
        START_APP("s5p", "启动APP"),

        /**
         * 退出APP
         */
        QUIT_APP("s5t", "退出APP"),

        /**
         * 登录APP
         */
        LOGIN_APP("s4n", "登录APP"),

        /**
         * 点击
         */
        CLICK("c3k", "点击"),

        /**
         * 收藏
         */
        STORE_UP("c8n", "收藏"),

        /**
         * 取消收藏
         */
        CANCEL_STORE("cNn", "取消收藏"),

        /**
         * 搜索
         */
        QUERY("s4h", "搜索"),

        /**
         * 加入购物车
         */
        ADD_TO_CART("a7t", "加入购物车"),

        /**
         * 提交订单
         */
        SUBMIT_ORDER("p8r", "提交订单"),

        /**
         * 支付
         */
        PAY("p5t", "支付"),

        /**
         * 取消订单
         */
        CANCEL_ORDER("cNr", "取消订单"),

        /**
         * 申请售后
         */
        APPLY_AFTER_SALE("aNs", "申请售后"),

        /**
         * 分享商品
         */
        SHARE_PRODUCT("sNs", "分享商品"),

        /**
         * 评价商品
         */
        EVALUATE_PRODUCT("eNs", "评价商品"),

        /**
         * 确认收货
         */
        CONFIRM_RECEIPT("cNt", "确认收货"),

        /**
         * 下载APP
         */
        DOWNLOAD_APP("d6d", "下载APP"),

        /**
         * 升级APP
         */
        UPDATE_APP("u4e", "升级APP"),

        /**
         * 卸载APP
         */
        UNLOAD_APP("u7l", "卸载APP"),

        /**
         * 分享店铺
         */
        SHARE_SHOP("s7p", "分享店铺"),

        /**
         * 分享直播
         */
        SHARE_LIVE_STREAM("s7e", "分享直播"),

        /**
         * 跳转
         */
        FORWARD("j2p", "跳转");

        String code;
        String name;

        EventEnum(String code , String name){
            this.code = code;
            this.name = name;
        }

        public static Map<String, String> enumToMap() {
            Map<String, String> resultMap = new HashMap<>(4);
            for (EventEnum item : EventEnum.values()) {
                resultMap.put(item.getCode(), item.getName());
            }
            return resultMap;
        }

    }

}
